package com.cxd.performance.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * Author: Calvin
 * Date: 2019-08-30 8:40
 * Description: 公共的基础domain类
 */
@Data
public class BaseDomain implements Serializable {

    private static final long serialVersionUID = 1401950603303065778L;

    public BaseDomain(Long id) {
        this.id = id;
    }

    public BaseDomain() {

    }

    /**
     *  数据库主键
     */
    private Long id;

    /**
     *  创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     *  更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     *  创建人编码
     */
    private String createUserCode;

    /**
     *  创建人名称
     */
    private String createUserName;

    /**
     *  更新人编码
     */
    private String updateUserCode;

    /**
     *  更新人名称
     */
    private String updateUserName;

    /**
     *  删除标识:
     *  0.正常
     *  1.删除
     */
    private Integer deleteFlag = 0;

    /**
     *  版本号
     */
    private Long version = 0L;

    /**
     *  页码
     */
    private Integer pageNo;

    /**
     *  页码起始值
     */
    private Integer start = 0;

    /**
     *  页面大小
     */
    private Integer pageSize = 10;

    /**
     *  页码起始值计算
     *
     * @return start
     */
    public Integer getStart() {
        if (this.pageNo != null && this.pageSize != null) {
            this.start = (this.pageNo - 1) * this.pageSize;
        }

        return this.start;
    }

}
